package com.ysq.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ysq.controller.result.Result;
import com.ysq.entity.Employee;

import javax.servlet.http.HttpServletRequest;

/**
 * ClassName: EmployeeService
 * Package: com.ysq.service
 * Description:
 *
 * @Author YSQ
 * @Create 2023/1/2 - 8:43
 */
public interface EmployeeService {
    /**
     * 登录业务
     * @param employee 接收前端传来的登录信息
     * @return
     */
    Result<Employee> login(Employee employee);

    /**
     * 新增员工业务
     * @param request 用于设置员工部分属性
     * @param employee 接收前端传来的新增员工信息
     * @return 返回true代表添加成功
     */
    boolean save(HttpServletRequest request, Employee employee);

    /**
     * 员工信息分页查询 + 模糊查询业务
     * @param page 第几页数据
     * @param pageSize 一页几条数据
     * @param name 模糊查询的条件
     * @return 返回page, 里面包含分页所有信息
     */
    Page<Employee> selectPage(int page, int pageSize, String name);

    /**
     * 更新/修改员工信息业务
     * @param employee 接收前端发送来的员工信息
     * @param request 用来获取当前登录用户ID信息
     * @return 返回true表示更新/修改成功, false则表示失败
     */
    boolean update(HttpServletRequest request, Employee employee);

    /**
     * 数据回显业务, 要根据ID完成对应员工信息的查询
     * @param id 接收前端传来的ID
     * @return 返回这个ID对应的员工信息
     */
    Employee dataEcho(Long id);
}
